The present invention relates generally to the field of hybrid data storage management, and more particular to methods, systems and computer program products that consider input/output (I/O) priority in determining the allocation data between hard disk drives (HDDs) and solid state drives (SSDs) in hybrid data storage systems.
Traditional hard disk drives (HDDs) are relatively inexpensive and they have the capacity to store very large amounts of data. However, the performance of HDDs in terms of input/output (I/O) speed has fallen significantly behind the speed of central processing units and various system buses. Accordingly, the transfer of data to and from hard disk drives presents a significant bottleneck to overall computer system performance.
Modern solid state drives (SSDs) provide high speed non-volatile storage, but their cost per unit of storage capacity is substantially higher than that of HDDs. Accordingly, it is not cost effective to replace HDDs with SSDs. However, there have been developed hybrid storage systems, which comprise a combination of HDDs and SSDs. In hybrid storage systems most of the data is stored in the HDD part of the system while a subset of the data is stored in the SSD part of the system.
Current hybrid storage caching techniques make their determination of where to store the data based on how often a particular file is accessed. Less frequently accessed data, which is referred to as cold data, is stored in the HDD part of the hybrid storage system, while more frequently accessed data, which is referred to as hot data, is cached in the SSD part of the system. However, there can be contention among files for the designation of hot data and there can be thrashing over time as files are moved into and out of the SSD based data access frequency. Moreover, hotter data in terms of frequency of access may not be more important data or data that requires the fastest response times.